package com.skt.domain.VO;

import com.skt.domain.ENUM.UserRole;
import com.skt.domain.ENUM.AccountStatus;
import com.skt.domain.ENUM.UserRoleStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@Schema(description = "登出结果返回对象")
public class LogoutResultVO {

    @Schema(description = "用户ID", example = "12345")
    private Long userId;

    @Schema(description = "用户名", example = "zhangsan")
    private String username;

    @Schema(description = "真实姓名", example = "张三")
    private String realName;

    // 修正：使用枚举类型而不是 Integer
    @Schema(description = "用户角色")
    private UserRole role;

    @Schema(description = "登出时间")
    private LocalDateTime logoutTime;

    @Schema(description = "登出类型", example = "ACTIVE")
    private String logoutType;

    @Schema(description = "影响的会话数量", example = "1")
    private Integer affectedSessionCount;

    @Schema(description = "是否登出所有设备", example = "false")
    private Boolean logoutAllDevices;

    @Schema(description = "账户状态")
    private AccountStatus accountStatus;

    @Schema(description = "角色审核状态")
    private UserRoleStatus roleStatus;

    @Schema(description = "店铺名称", example = "张三的服装店")
    private String shopName;

    @Schema(description = "客户端IP地址", example = "192.168.1.100")
    private String clientIp;

    @Schema(description = "登出结果消息", example = "登出成功")
    private String message;
}